Distributed computing refers to a computing network in which one or more interconnected computing devices co-operate with each other by sharing one or more computational resources (e.g., instances of CPUs, RAM, disk-space, etc.). One of the types of distributed computing is volunteer computing in which resource providers having one or more resource types voluntarily share the computational resources for performing a task. For example, the resource providers can help certain tasks that require high levels of processing power and memory usage by sharing the computational resources, when the computing devices associated with these resource providers are in an idle state.
Sharing of computing resources among peers has gained increased attention from the research community over the years. Recent efforts have looked into marketplace offerings to allow commoditizing of resources. Currently, if a user wants to utilize the shared computing resources, then the user has to provide exact resource requirement for computing one or more tasks. Thus, the burden of providing resource requirement is on the user.